#ifndef POWERBUS_H
#define POWERBUS_H

#include <QWidget>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include "decoupler.h"

namespace Ui {
class PowerBus;
}

class PowerBus : public QWidget
{
    Q_OBJECT

public:
    explicit PowerBus(QWidget *parent = 0);
    ~PowerBus();

private:
    void SetCbEnable(bool flag);
    bool OpenSerial();
    void InsertSpace(const QByteArray& src, QByteArray &dest);
    int  WriteData(const QByteArray &data);
    int  Ascii2Hex(const QByteArray &inData, QByteArray &outData);
    std::string CheckInput(const QString &input);

    void procData(const string &data);
    void referVersion();
    void referAddr();

public slots:
    void OnReadData();

private slots:
    void on_btOpen_clicked();

    void on_btClose_clicked();

    void on_btClear_clicked();

    void on_btSend_clicked();

    void on_btnReferVer_clicked();

    void on_btnReferAddr_clicked();

private:
    Ui::PowerBus *ui;
    bool m_serialState; //串口打开状态
    QSerialPort *m_pSerial;
    CFensDecoupler *m_pDecoupler;

    uint16_t m_sendCid; //发送的cid1cid2
};

#endif // POWERBUS_H
